package fizz.algorithm.Chapter1;

/**
 * @Author Fizz Pu
 * @Date 2020/9/28 下午10:12
 * @Version 1.0
 * 失之毫厘，缪之千里！
 */

// 整数划分问题
public class P13_2_5 {
    int getSplit(int n){
        return  helper(n,n);
    }

    /**
     *
     * @param n 待划分的整数
     * @param maxNum 每个划分加数不超过maxNum
     * @return 能形成多少种划分
     */
    int helper(int n, int maxNum){
        if(n == 1 || maxNum == 1) return 1;
        else if(n <= maxNum) return  helper(n,maxNum-1) + 1;
        else return helper(n,maxNum-1) + helper(n-maxNum,maxNum);
    }

    public static void main(String[] args) {
        System.out.println(new P13_2_5().getSplit(6));
    }
}
